﻿/*
 Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
        (function() {
            function b(a, b, c) {
                var k = n[this.id];
                if (k)
                    for (var f = this instanceof CKEDITOR.ui.dialog.checkbox, e = 0; e < k.length; e++) {
                        var d = k[e];
                        switch (d.type) {
                            case g:
                                if (!a)
                                    continue;
                                if (null !== a.getAttribute(d.name)) {
                                    a = a.getAttribute(d.name);
                                    f ? this.setValue("true" == a.toLowerCase()) : this.setValue(a);
                                    return
                                }
                                f && this.setValue(!!d["default"]);
                                break;
                            case o:
                                if (!a)
                                    continue;
                                if (d.name in c) {
                                    a = c[d.name];
                                    f ? this.setValue("true" == a.toLowerCase()) : this.setValue(a);
                                    return
                                }
                                f && this.setValue(!!d["default"]);
                                break;
                            case i:
                                if (!b)
                                    continue;
                                if (b.getAttribute(d.name)) {
                                    a = b.getAttribute(d.name);
                                    f ? this.setValue("true" == a.toLowerCase()) : this.setValue(a);
                                    return
                                }
                                f && this.setValue(!!d["default"])
                        }
                    }
            }
            function c(a, b, c) {
                var k = n[this.id];
                if (k)
                    for (var f = "" === this.getValue(), e = this instanceof CKEDITOR.ui.dialog.checkbox, d = 0; d < k.length; d++) {
                        var h = k[d];
                        switch (h.type) {
                            case g:
                                if (!a || "data" == h.name && b && !a.hasAttribute("data"))
                                    continue;
                                var l = this.getValue();
                                f || e && l === h["default"] ? a.removeAttribute(h.name) : a.setAttribute(h.name, l);
                                break;
                            case o:
                                if (!a)
                                    continue;
                                l = this.getValue();
                                if (f || e && l === h["default"])
                                    h.name in c && c[h.name].remove();
                                else if (h.name in c)
                                    c[h.name].setAttribute("value", l);
                                else {
                                    var p = CKEDITOR.dom.element.createFromHtml("<cke:param></cke:param>", a.getDocument());
                                    p.setAttributes({name: h.name, value: l});
                                    1 > a.getChildCount() ? p.appendTo(a) : p.insertBefore(a.getFirst())
                                }
                                break;
                            case i:
                                if (!b)
                                    continue;
                                l = this.getValue();
                                f || e && l === h["default"] ? b.removeAttribute(h.name) : b.setAttribute(h.name, l)
                        }
                    }
            }
            for (var g = 1, o = 2, i = 4, n = {id: [{type: g, name: "id"}], classid: [{type: g,
                        name: "classid"}], codebase: [{type: g, name: "codebase"}], pluginspage: [{type: i, name: "pluginspage"}], src: [{type: o, name: "movie"}, {type: i, name: "src"}, {type: g, name: "data"}], name: [{type: i, name: "name"}], align: [{type: g, name: "align"}], "class": [{type: g, name: "class"}, {type: i, name: "class"}], width: [{type: g, name: "width"}, {type: i, name: "width"}], height: [{type: g, name: "height"}, {type: i, name: "height"}], hSpace: [{type: g, name: "hSpace"}, {type: i, name: "hSpace"}], vSpace: [{type: g, name: "vSpace"}, {type: i, name: "vSpace"}], style: [{type: g,
                        name: "style"}, {type: i, name: "style"}], type: [{type: i, name: "type"}]}, m = "play loop menu quality scale salign wmode bgcolor base flashvars allowScriptAccess allowFullScreen".split(" "), j = 0; j < m.length; j++)
                n[m[j]] = [{type: i, name: m[j]}, {type: o, name: m[j]}];
            m = ["play", "loop", "menu"];
            for (j = 0; j < m.length; j++)
                n[m[j]][0]["default"] = n[m[j]][1]["default"] = !0;
            CKEDITOR.dialog.add("flash", function(a) {
                var g = !a.config.flashEmbedTagOnly, i = a.config.flashAddEmbedTag || a.config.flashEmbedTagOnly, k, f = "<div>" + CKEDITOR.tools.htmlEncode(a.lang.common.preview) +
                        '<br><div id="cke_FlashPreviewLoader' + CKEDITOR.tools.getNextNumber() + '" style="display:none"><div class="loading">&nbsp;</div></div><div id="cke_FlashPreviewBox' + CKEDITOR.tools.getNextNumber() + '" class="FlashPreviewBox"></div></div>';
                return{title: a.lang.flash.title, minWidth: 420, minHeight: 310, onShow: function() {
                        this.fakeImage = this.objectNode = this.embedNode = null;
                        k = new CKEDITOR.dom.element("embed", a.document);
                        var e = this.getSelectedElement();
                        if (e && e.data("cke-real-element-type") && "flash" == e.data("cke-real-element-type")) {
                            this.fakeImage =
                                    e;
                            var d = a.restoreRealElement(e), h = null, b = null, c = {};
                            if ("cke:object" == d.getName()) {
                                h = d;
                                d = h.getElementsByTag("embed", "cke");
                                0 < d.count() && (b = d.getItem(0));
                                for (var d = h.getElementsByTag("param", "cke"), g = 0, i = d.count(); g < i; g++) {
                                    var f = d.getItem(g), j = f.getAttribute("name"), f = f.getAttribute("value");
                                    c[j] = f
                                }
                            } else
                                "cke:embed" == d.getName() && (b = d);
                            this.objectNode = h;
                            this.embedNode = b;
                            this.setupContent(h, b, c, e)
                        }
                    }, onOk: function() {
                        var e = null, d = null, b = null;
                        if (this.fakeImage)
                            e = this.objectNode, d = this.embedNode;
                        else if (g &&
                                (e = CKEDITOR.dom.element.createFromHtml("<cke:object></cke:object>", a.document), e.setAttributes({classid: "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", codebase: "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"})), i)
                            d = CKEDITOR.dom.element.createFromHtml("<cke:embed></cke:embed>", a.document), d.setAttributes({type: "application/x-shockwave-flash", pluginspage: "http://www.macromedia.com/go/getflashplayer"}), e && d.appendTo(e);
                        if (e)
                            for (var b = {}, c = e.getElementsByTag("param",
                                    "cke"), f = 0, j = c.count(); f < j; f++)
                                b[c.getItem(f).getAttribute("name")] = c.getItem(f);
                        c = {};
                        f = {};
                        this.commitContent(e, d, b, c, f);
                        e = a.createFakeElement(e || d, "cke_flash", "flash", !0);
                        e.setAttributes(f);
                        e.setStyles(c);
                        this.fakeImage ? (e.replace(this.fakeImage), a.getSelection().selectElement(e)) : a.insertElement(e)
                    }, onHide: function() {
                        this.preview && this.preview.setHtml("")
                    }, contents: [{id: "info", label: a.lang.common.generalTab, accessKey: "I", elements: [{type: "vbox", padding: 0, children: [{type: "hbox", widths: ["280px", "110px"],
                                            align: "right", children: [{id: "src", type: "text", label: a.lang.common.url, required: !0, validate: CKEDITOR.dialog.validate.notEmpty(a.lang.flash.validateSrc), setup: b, commit: c, onLoad: function() {
                                                        var a = this.getDialog(), b = function(b) {
                                                            k.setAttribute("src", b);
                                                            a.preview.setHtml('<embed height="100%" width="100%" src="' + CKEDITOR.tools.htmlEncode(k.getAttribute("src")) + '" type="application/x-shockwave-flash"></embed>')
                                                        };
                                                        a.preview = a.getContentElement("info", "preview").getElement().getChild(3);
                                                        this.on("change", function(a) {
                                                            a.data &&
                                                                    a.data.value && b(a.data.value)
                                                        });
                                                        this.getInputElement().on("change", function() {
                                                            b(this.getValue())
                                                        }, this)
                                                    }}, {type: "button", id: "browse", filebrowser: "info:src", hidden: !0, style: "display:inline-block;margin-top:14px;", label: a.lang.common.browseServer}]}]}, {type: "hbox", widths: ["25%", "25%", "25%", "25%", "25%"], children: [{type: "text", id: "width", requiredContent: "embed[width]", style: "width:95px", label: a.lang.common.width, validate: CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",
                                                    a.lang.common.width)), setup: b, commit: c}, {type: "text", id: "height", requiredContent: "embed[height]", style: "width:95px", label: a.lang.common.height, validate: CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1", a.lang.common.height)), setup: b, commit: c}, {type: "text", id: "hSpace", requiredContent: "embed[hspace]", style: "width:95px", label: a.lang.flash.hSpace, validate: CKEDITOR.dialog.validate.integer(a.lang.flash.validateHSpace), setup: b, commit: c}, {type: "text", id: "vSpace", requiredContent: "embed[vspace]",
                                            style: "width:95px", label: a.lang.flash.vSpace, validate: CKEDITOR.dialog.validate.integer(a.lang.flash.validateVSpace), setup: b, commit: c}]}, {type: "vbox", children: [{type: "html", id: "preview", style: "width:95%;", html: f}]}]}, {id: "Upload", hidden: !0, filebrowser: "uploadButton", label: a.lang.common.upload, elements: [{type: "file", id: "upload", label: a.lang.common.upload, size: 38}, {type: "fileButton", id: "uploadButton", label: a.lang.common.uploadSubmit, filebrowser: "info:src", "for": ["Upload", "upload"]}]}, {id: "properties",
                            label: a.lang.flash.propertiesTab, elements: [{type: "hbox", widths: ["50%", "50%"], children: [{id: "scale", type: "select", requiredContent: "embed[scale]", label: a.lang.flash.scale, "default": "", style: "width : 100%;", items: [[a.lang.common.notSet, ""], [a.lang.flash.scaleAll, "showall"], [a.lang.flash.scaleNoBorder, "noborder"], [a.lang.flash.scaleFit, "exactfit"]], setup: b, commit: c}, {id: "allowScriptAccess", type: "select", requiredContent: "embed[allowscriptaccess]", label: a.lang.flash.access, "default": "", style: "width : 100%;",
                                            items: [[a.lang.common.notSet, ""], [a.lang.flash.accessAlways, "always"], [a.lang.flash.accessSameDomain, "samedomain"], [a.lang.flash.accessNever, "never"]], setup: b, commit: c}]}, {type: "hbox", widths: ["50%", "50%"], children: [{id: "wmode", type: "select", requiredContent: "embed[wmode]", label: a.lang.flash.windowMode, "default": "", style: "width : 100%;", items: [[a.lang.common.notSet, ""], [a.lang.flash.windowModeWindow, "window"], [a.lang.flash.windowModeOpaque, "opaque"], [a.lang.flash.windowModeTransparent, "transparent"]],
                                            setup: b, commit: c}, {id: "quality", type: "select", requiredContent: "embed[quality]", label: a.lang.flash.quality, "default": "high", style: "width : 100%;", items: [[a.lang.common.notSet, ""], [a.lang.flash.qualityBest, "best"], [a.lang.flash.qualityHigh, "high"], [a.lang.flash.qualityAutoHigh, "autohigh"], [a.lang.flash.qualityMedium, "medium"], [a.lang.flash.qualityAutoLow, "autolow"], [a.lang.flash.qualityLow, "low"]], setup: b, commit: c}]}, {type: "hbox", widths: ["50%", "50%"], children: [{id: "align", type: "select", requiredContent: "object[align]",
                                            label: a.lang.common.align, "default": "", style: "width : 100%;", items: [[a.lang.common.notSet, ""], [a.lang.common.alignLeft, "left"], [a.lang.flash.alignAbsBottom, "absBottom"], [a.lang.flash.alignAbsMiddle, "absMiddle"], [a.lang.flash.alignBaseline, "baseline"], [a.lang.common.alignBottom, "bottom"], [a.lang.common.alignMiddle, "middle"], [a.lang.common.alignRight, "right"], [a.lang.flash.alignTextTop, "textTop"], [a.lang.common.alignTop, "top"]], setup: b, commit: function(a, b, f, g, i) {
                                                var j = this.getValue();
                                                c.apply(this, arguments);
                                                j && (i.align = j)
                                            }}, {type: "html", html: "<div></div>"}]}, {type: "fieldset", label: CKEDITOR.tools.htmlEncode(a.lang.flash.flashvars), children: [{type: "vbox", padding: 0, children: [{type: "checkbox", id: "menu", label: a.lang.flash.chkMenu, "default": !0, setup: b, commit: c}, {type: "checkbox", id: "play", label: a.lang.flash.chkPlay, "default": !0, setup: b, commit: c}, {type: "checkbox", id: "loop", label: a.lang.flash.chkLoop, "default": !0, setup: b, commit: c}, {type: "checkbox", id: "allowFullScreen", label: a.lang.flash.chkFull, "default": !0,
                                                    setup: b, commit: c}]}]}]}, {id: "advanced", label: a.lang.common.advancedTab, elements: [{type: "hbox", children: [{type: "text", id: "id", requiredContent: "object[id]", label: a.lang.common.id, setup: b, commit: c}]}, {type: "hbox", widths: ["45%", "55%"], children: [{type: "text", id: "bgcolor", requiredContent: "embed[bgcolor]", label: a.lang.flash.bgcolor, setup: b, commit: c}, {type: "text", id: "class", requiredContent: "embed(cke-xyz)", label: a.lang.common.cssClass, setup: b, commit: c}]}, {type: "text", id: "style", requiredContent: "embed{cke-xyz}",
                                    validate: CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle), label: a.lang.common.cssStyle, setup: b, commit: c}]}]}
            })
        })();